package com.oneday.nuo.base.service;

import cn.hutool.core.lang.tree.Tree;
import com.oneday.nuo.base.dto.NuoMenuDTO;
import com.oneday.nuo.base.entity.NuoMenuEntity;

import java.util.List;
import java.util.Map;

/**
 * (NuoMenu)表服务接口
 *
 * @author liushuai
 * @since 2021-03-13 23:37:21
 */
public interface NuoMenuService {

    /**
     * 保存菜单
     * @Author: liushuai
     * @Date: 2021/3/14 20:41
     * @param : * @param nuoMenuDTO
     * @return :void
     **/
    void saveMenu(NuoMenuDTO nuoMenuDTO);
    /**
     * 查询菜单
     * @Author: liushuai
     * @Date: 2021/3/14 21:45
     * @param : * @param
     * @return :java.util.List<com.oneday.nuo.base.entity.NuoMenuEntity>
     **/
    List<Tree<String>> queryMenuAll();

    List<NuoMenuEntity> queryMenuAllList();
    /**
     * 根据id查询菜单
     * @Author: liushuai
     * @Date: 2021/3/14 23:11
     * @param : * @param id
     * @return :com.oneday.nuo.base.entity.NuoMenuEntity
     **/
    NuoMenuDTO queryMenuById(String id);
    /**
     * 根据id删除菜单以及子菜单
     * @Author: liushuai
     * @Date: 2021/3/15 22:38
     * @param : * @param id
     * @return :void
     **/
    void deleteMenuById(String id);
    /**
     * 查询路由
     * @Author: liushuai
     * @Date: 2021/3/16 21:22
     * @param : * @param
     * @return :java.util.List<cn.hutool.core.lang.tree.Tree<java.lang.String>>
     **/
    List<NuoMenuEntity> queryRoute();
    /**
     * 查询菜单
     * @Author: liushuai
     * @Date: 2021/4/5 0:31
     * @param : * @param userId
     * @return :java.util.List<cn.hutool.core.lang.tree.Tree<java.lang.String>>
     **/
    Map<String,Object> queryMenuByUserId(Long userId);

}